package com.xiaoc.bulldozer.common.dao;

import java.util.List;

import com.xiaoc.bulldozer.common.dto.StatisticMonthlyDto;
import com.xiaoc.bulldozer.common.dto.StatisticMonthlyQueryDto;
import com.xiaoc.bulldozer.common.model.StatisticMonthly;

/**
 * StatisticMonthly Mapper 接口
 *
 * @author Danfo Yam
 * 
 * @date 2018-09-14 16:20:57
 */
public interface StatisticMonthlyMapper {

    /**
     * 根据条件查询StatisticMonthly数量
     
     * @param StatisticMonthlyQueryDto
     *
     * @return 满足查询条件的记录数量
     */
    public Integer getStatisticMonthlyCountByCondition(StatisticMonthlyQueryDto statisticMonthlyQueryDto);
    
    /**
     * 根据条件查询支行汇总记录数量
     
     * @param StatisticMonthlyQueryDto
     *
     * @return 满足查询条件的记录数量
     */
    public Integer groupStatisticMonthlyCountByCondition(StatisticMonthlyQueryDto statisticMonthlyQueryDto);
    
    
    /**
     * 根据条件分页查询StatisticMonthly列表
     *
     * @param StatisticMonthlyQueryDto
     *
     * @return 满足查询条件的StatisticMonthly列表
     */
    public List<StatisticMonthly> getStatisticMonthlyListByCondition(StatisticMonthlyQueryDto statisticMonthlyQueryDto);
    
    /**
     * 根据条件分页查询 渠道经理报表
     */
    public List<StatisticMonthlyDto> getStatisticMonthlyDtoListByCondition(StatisticMonthlyQueryDto statisticMonthlyQueryDto);
    
    /**
     * 根据条件分页查询 支行汇总报表
     */
    public List<StatisticMonthlyDto> groupStatisticMonthlyDtoListByCondition(StatisticMonthlyQueryDto statisticMonthlyQueryDto);
    
    /**
     * 根据Id获取StatisticMonthly
     * 
     * @param id
     *
     * @return StatisticMonthly对象
     */
    public StatisticMonthly getStatisticMonthlyById(Integer id);

    /**
     * 获取所有StatisticMonthly列表
     * 
     * @return StatisticMonthly列表
     */
    public List<StatisticMonthly> getAllStatisticMonthlyList();

    /**
     * 新增StatisticMonthly
     * 
     * @param statisticMonthly
     *
     * @return void
     */
    public void save(StatisticMonthly statisticMonthly);

    /**
     * 更新StatisticMonthly
     * 
     * @param statisticMonthly
     *
     * @return void
     */
    public void update(StatisticMonthly statisticMonthly);

    /**
     * 根据Id删除StatisticMonthly
     * 
     * @param id
     *
     * @return void
     */
    public void deleteById(Integer id);
    
    /**
     * 根据statisticMonthlyQueryDto删除StatisticMonthly
     * 
     * @param statisticMonthlyQueryDto
     *
     * @return void
     */
    public void deleteByYearMonth(StatisticMonthlyQueryDto statisticMonthlyQueryDto);
    
    /**
     * 查询一段时间内，渠道经理获得的点赞数
     */
    public List<StatisticMonthly> countPartner(StatisticMonthlyQueryDto statisticMonthlyQueryDto);
    
    /**
     * 查询一段时间内，渠道经理获得的注册用户数
     */
    public List<StatisticMonthly> countAccount(StatisticMonthlyQueryDto statisticMonthlyQueryDto);
    
    /**
     * 查询一段时间内，渠道经理获得的申贷数
     */
    public List<StatisticMonthly> countLoan(StatisticMonthlyQueryDto statisticMonthlyQueryDto);

}
